package com.xmtlxx.wms.domain.vo;

import com.xmtlxx.common.annotation.ExcelDictFormat;
import com.xmtlxx.common.convert.ExcelDictConvert;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.xmtlxx.system.domain.SysOss;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;


/**
 * 出库单视图对象 t_ex_warehouse
 *
 * @author xmtlxx
 * @date 2022-08-15
 */
@Data
@ApiModel("出库单视图对象")
@ExcelIgnoreUnannotated
public class ExWarehouseVo {

    private static final long serialVersionUID = 1L;

    /**
     * 出库单ID
     */
    @ExcelProperty(value = "出库单ID")
    @ApiModelProperty("出库单ID")
    private String id;

    /**
     * 订单ID
     */
    @ExcelProperty(value = "订单ID")
    @ApiModelProperty("订单ID")
    private String taskId;

    /**
     * 出库单号
     */
    @ExcelProperty(value = "出库单号")
    @ApiModelProperty("出库单号")
    private String exno;

    /**
     * 单位ID
     */
    @ExcelProperty(value = "单位ID")
    @ApiModelProperty("单位ID")
    private Long deptId;

    /**
     * 仓库ID
     */
    @ExcelProperty(value = "仓库ID")
    @ApiModelProperty("仓库ID")
    private String storeId;

    /**
     * 类型
     */
    @ExcelProperty(value = "类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "wms_ex_warehouse_type")
    @ApiModelProperty("类型")
    private String type;

    /**
     * 出库原因
     */
    @ExcelProperty(value = "出库原因")
    @ApiModelProperty("出库原因")
    private String reason;

    /**
     * 目标单位
     */
    @ApiModelProperty("目标单位")
    private Long targetId;

    /**
     * 目标单位联系人
     */
    @ExcelProperty(value = "目标单位联系人")
    @ApiModelProperty("目标单位联系人")
    private String contacts;

    /**
     * 联系方式
     */
    @ExcelProperty(value = "联系方式")
    @ApiModelProperty("联系方式")
    private String tel;

    /**
     * 目标单位地址
     */
    @ExcelProperty(value = "目标单位地址")
    @ApiModelProperty("目标单位地址")
    private String address;

    /**
     * 经度
     */
    @ExcelProperty(value = "经度")
    @ApiModelProperty("经度")
    private String lng;

    /**
     * 纬度
     */
    @ExcelProperty(value = "纬度")
    @ApiModelProperty("纬度")
    private String lat;

    /**
     * 物品数量
     */
    @ExcelProperty(value = "物品数量")
    @ApiModelProperty("物品数量")
    private Long nums;

    /**
     * 物流配送
     */
    @ExcelProperty(value = "物流配送")
    @ApiModelProperty("物流配送")
    private String flag;

    /**
     * 图片附件
     */
    @ExcelProperty(value = "图片附件")
    @ApiModelProperty("图片附件")
    private String pics;

    /**
     * 描述
     */
    @ExcelProperty(value = "描述")
    @ApiModelProperty("描述")
    private String memo;

    /**
     * 交接信息
     */
    @ExcelProperty(value = "交接信息")
    @ApiModelProperty("交接信息")
    private String handId;

    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 创建人
     */
    @ExcelProperty(value = "创建人")
    @ApiModelProperty("创建人")
    private String createBy;

    /**
     * 更新时间
     */
    @ExcelProperty(value = "更新时间")
    @ApiModelProperty("更新时间")
    private Date updateTime;

    /**
     * 更新人
     */
    @ExcelProperty(value = "更新人")
    @ApiModelProperty("更新人")
    private String updateBy;

    /**
     * 删除标识
     */
    @ExcelProperty(value = "删除标识", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_del_flag")
    @ApiModelProperty("删除标识")
    private String delFlag;


    @ApiModelProperty("财物清单")
    private List<ExWarehouseDtlVo> items;

    @ApiModelProperty(value = "部门")
    private String deptName;

    @ApiModelProperty(value = "仓库")
    private String storeName;

    @ApiModelProperty("订单编号")
    private String taskNo;

    private List<SysOss> oss;

    @ExcelProperty(value = "目标单位")
    @ApiModelProperty("目标单位")
    private String targetName;
    /**
     * 归还时间
     */
    private Date returnTime;
    /**
     * 归还状态
     */
    private String returnStatus;

    private String stagingId;



    /**
     * 跨级确认
     */
    @ApiModelProperty("跨级确认")
    private String isValidate;

    /**
     * 确认时间
     */
    @ApiModelProperty("确认时间")
    private Date validateTime;

    /**
     * 确认人
     */
    @ApiModelProperty("确认人")
    private String validater;

    /**
     * 出库类型
     */
    @ApiModelProperty("出库类型")
    private String outType;

    @ApiModelProperty("是否到货")
    private String isSign;

    /**
     * 是否完成挑拣
     */
    @ApiModelProperty("是否完成挑拣")
    private String isFinish;

    private Boolean isWaybillShow = false;

    private String waybillId;


    /**
     * 转调用单号
     */
    @ApiModelProperty("转调用单号")
    private String replaceNo;

    private String returnTimeNew;
}
